Backend Developer Roadmap 3
Roadmap: https://roadmap.sh/backend
本文隶属于 Roadmap 中的 Internet --> Browsers and how they work?
。
原文:https://developer.mozilla.org/en-US/docs/Web/Performance/How_browsers_work
用户希望网站内容快速加载且交互顺畅,因此开发人员应该努力实现这两个目标。为了理解如何提高性能和感知性能,有必要了解浏览器的工作原理。
总览
快速的网站提供更好的用户体验。用户希望并期望具有快速加载和顺畅交互的内容的 Web 体验。
Web 性能的两个主要问题与延迟有关,并且与浏览器大多数情况下是单线程有关。
延迟是影响页面加载速度的主要因素,开发人员的目标是让站点尽可能快地加载,以便用户尽快获得所需信息。浏览器大多数情况下是单线程的,这意味着它们在占用另一个任务之前从头到尾执行一个任务。为了确保网站流畅互动,开发人员需要确保主线程可以完成所有工作并在可能和适当的情况下最小化主线程的责任,以提高 Web 性能。
导航
导航是加载网页的第一步。它发生在用户通过地址栏输入 URL、点击链接、提交表单以及其他操作请求页面时。Web 性能的目标之一是尽量减少导航完成所需的时间。在理想的情况下,这通常不会花费太长时间,但延迟和带宽可能会导致时延。
DNS 查找
访问网页的第一步是查找页面资源的位置。如果访问https://example.com
,那么 HTML 页面位于 IP 地址为93.184.216.34
的服务器上。如果你从未访问过此站点,则需要进行 DNS 查找。
浏览器请求 DNS 查找,最终由名称服务器(name server)响应 IP 地址。此后,IP 地址可能会被缓存一段时间,这样就可以通过从缓存中检索IP地址而不是再次联系名字服务器来加速后续请求。
页面加载通常只需要对每个主机名进行一次 DNS 查找。但是,对于所请求页面引用的每个唯一主机名都必须进行 DNS 查找。如果您的字体、图像、脚本、广告和指标都具有不同的主机名,则必须对每个主机名进行 DNS 查找。这可能会影响性能,特别是在移动网络上。